Release 10.1A: OpenEdge Getting Started:
Object-oriented Programming
Preface
This Preface contains the following sections:
Purpose
The Progress® 4GL has long supported the ability to create and program with objects built from persistent procedures (procedure-based objects). These objects feature and depend almost entirely on run-time management to organize them for use in an application. With OpenEdge® Release 10.1, the 4GL includes support for classes. Classes allow a Progress developer to create and program with objects built from user-defined classes (class-based objects) that can be defined and organized for use by an application at compile time. The developer can define and manage class-based objects using the standard features of object-oriented programming available in programming languages, such as Java. The developer can also use procedure-based and class-based objects together in a single application.
This manual introduces object-oriented programming using classes in the Progress 4GL and also describes how to work with class-based and procedure-based objects together.
Audience
A Progress developer who is thoroughly familiar with programming in the Progress 4GL. For more information, see OpenEdge Development: Progress 4GL Handbook .
It is also helpful, but not required, for the reader to be familiar with object-oriented programming concepts and have familiarity with another object-oriented programming language, such as Java.
Organization
Chapter 1 "Object-oriented Programming and the Progress 4GL"
Introduces support for classes in the Progress 4GL, compares and contrasts programming with procedures and programming with classes, and provides an overview of object-oriented programming for the Progress programmer.
Chapter 2 "Getting Started with Classes, Interfaces, and Objects"
Describes the syntax and provides examples of defining classes and interfaces, and describes basic object life-cycle management.
Chapter 3 "Designing Objects — Inheritance, Polymorphism, and Delegation"
Describes how to use inheritance, polymorphism, and delegation to design and organize class-based objects.
Chapter 4 "Programming with Class-based Objects"
Describes how to instantiate and program with class-based objects.
Chapter 5 "Programming with Class-based and Procedure-based Objects"
Describes how to use class-based and procedure-based objects in a Progress application.
Chapter 6 "Developing and Deploying Classes"
Describes how to use Progress 4GL development tools and 4GL features to create, compile, and deploy class files.
Typographical conventions
This manual uses the following typographical conventions:
Examples of syntax descriptions
In this example,
ACCUMis a keyword, andaggregateandexpressionare variables:
FORis one of the statements that can end with either a period or a colon, as in this example:
In this example,
STREAMstream,UNLESS-HIDDEN, andNO-ERRORare optional:
In this example, the outer (small) brackets are part of the language, and the inner (large) brackets denote an optional item:
A called external procedure must use braces when referencing compile-time arguments passed by a calling procedure, as shown in this example:
In this example,
EACH,FIRST, andLASTare optional, but you can choose only one of them:
In this example, you must include two expressions, and optionally you can include more. Multiple expressions are separated by commas:
In this example, you must specify
MESSAGEand at least oneexpressionorSKIP[ (n) ], and any number of additionalexpressionorSKIP[ (n) ] is allowed:
In this example, you must specify {
include-file, then optionally any number ofargumentor&argument-name = "argument-value", and then terminate with }:
Long syntax descriptions split across lines
Some syntax descriptions are too long to fit on one line. When syntax descriptions are split across multiple lines, groups of optional and groups of required items are kept together in the required order.
In this example,
WITHis followed by six optional items:
Complex syntax descriptions with both required and optional elements
Some syntax descriptions are too complex to distinguish required and optional elements by bracketing only the optional elements. For such syntax, the descriptions include both braces (for required elements) and brackets (for optional elements).
In this example,
ASSIGNrequires either one or morefieldentries or onerecord. Options available withfieldorrecordare grouped with braces and brackets:
OpenEdge messages
OpenEdge displays several types of messages to inform you of routine and unusual occurrences:
- Execution messages inform you of errors encountered while OpenEdge is running a procedure; for example, if OpenEdge cannot find a record with a specified index field value.
- Compile messages inform you of errors found while OpenEdge is reading and analyzing a procedure before running it; for example, if a procedure references a table name that is not defined in the database.
- Startup messages inform you of unusual conditions detected while OpenEdge is getting ready to execute; for example, if you entered an invalid startup parameter.
After displaying a message, OpenEdge proceeds in one of several ways:
- Continues execution, subject to the error-processing actions that you specify or that are assumed as part of the procedure. This is the most common action taken after execution messages.
- Returns to the Progress Procedure Editor, so you can correct an error in a procedure. This is the usual action taken after compiler messages.
- Halts processing of a procedure and returns immediately to the Progress Procedure Editor. This does not happen often.
- Terminates the current session.
OpenEdge messages end with a message number in parentheses. In this example, the message number is
200:
If you encounter an error that terminates OpenEdge, note the message number before restarting.
Obtaining more information about OpenEdge messages
In Windows platforms, use OpenEdge online help to obtain more information about OpenEdge messages. Many OpenEdge tools include the following Help menu options to provide information about messages:
- Choose Help
Recent Messages to display detailed descriptions of the most recent OpenEdge message and all other messages returned in the current session.
- Choose Help
Messages and then type the message number to display a description of a specific OpenEdge message.
- In the Progress Procedure Editor, press the HELP key or F1.
On UNIX platforms, use the Progress
procommand to start a single-user mode character OpenEdge client session and view a brief description of a message by providing its number.
![]()
To use the pro command to obtain a message description by message number:
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |